home *** CD-ROM | disk | FTP | other *** search
/ Dr. Windows 3 / dr win3.zip / dr win3 / COMMUNIC / MRUN211.ZIP / MRUN211.WAS < prev    next >
Text File  |  1993-05-01  |  34KB  |  1,042 lines

  1. ;MailRun v2.11:  Automated BBS Communications
  2. ;1992-1993 Gerald P. Sully, all rights reserved.
  3.  
  4.  
  5. #comment
  6. **************************************************************************
  7. **************************************************************************
  8. * The source code for MailRun is contained in 9 separate files: 
  9. * MRUN211.WAS (this file), MRUN211.H (a header file), and files 
  10. * named MRUN211?.WAS, where ? is a letter A through G.  MailRun
  11. * also requires the file MRUNICON.DLL in order to display the 
  12. * tool bar.
  13. * MRUN211.WAS is the script from which the other script files
  14. * are run.  It performs a brief initialization to find the
  15. * location of its support files, then chains to MRUN211A.WAS,
  16. * which is the principle engine of MailRun.  It will also 
  17. * perform an install routine if it finds that there is no
  18. * current MAILRUN.INI file.
  19. * The key files of MailRun are the *.MRN files.  These
  20. * store configuration information and control what tasks
  21. * will be performed on each BBS.  The user interface is
  22. * designed to provide a convenient way to edit these files
  23. * and display their contents.  The files are standard INI
  24. * files, and so may also be edited by hand.  The comm engine,
  25. * contained in MRUN211G.WAS, reads the currently loaded *.MRN
  26. * file, calls each BBS and executes each pending task.
  27. **************************************************************************
  28. **************************************************************************
  29. #endcomment
  30.  
  31.  
  32. #define IniFile 0
  33.  
  34. string MailRunIni, MailRunList, MailRunTrunc, MailRun, OldIni
  35. string MailRunDir, MailDir, ReplyDir, DownloadDir, UploadDir, TempDir
  36. string DialAttempts, DialTimeout, DialPause, IdleTimeout, SavePackets
  37. string Archiver, QWKReader, LogViewer
  38. integer LogRun, AppendLog, AnsiInLog, NewfileFilter, HelpPage
  39. float Version
  40.  
  41.  
  42. #comment
  43. *********************************************************************
  44. * MAIN()
  45. * Calls makefullname(), checkdir(), makeini(), gettempdir(),
  46. * delspec(), changesettings(), movedir(), updatemrn()
  47. * Executes MRUN211A.WAX
  48. * Checks for existence of MAILRUN.INI file, then chains
  49. * to the main body of the script.
  50. *********************************************************************
  51. #endcomment
  52.  
  53. proc main
  54. string MRunMain, temp, MailRunHelp
  55.     MailRunHelp = makefullname($PWTASKPATH, "mailrun.hlp")
  56.     if isfile MailRunHelp
  57.         set aspect helpfile "mailrun.hlp"
  58.     endif
  59.  
  60.    ;Create the temporary directory
  61.    gettempdir()
  62.    if !(checkdir(TempDir, ""))
  63.       halt
  64.    endif
  65.    
  66.    MailRunIni = makefullname($WINPATH, "MAILRUN.INI")
  67.    profilerd MailRunIni "MailRun" "Version" temp
  68.    atof temp Version
  69.    if Version != 2.11
  70.       ;if there is no .INI file for version 2.11, run install procedure
  71.         fetch aspect scriptpath temp
  72.        temp = makefullname(temp, "mailrun.hlp")
  73.        if not strcmpi MailRunHelp temp
  74.            copyfile temp MailRunHelp
  75.            delfile temp
  76.         endif
  77.         set aspect helpfile "mailrun.hlp"
  78.       makeini()
  79.       changesettings()
  80.       movedir()
  81.       if Version != 2.10
  82.           updatemrn()
  83.        endif
  84.         delfile OldIni
  85.       statmsg "Installation complete!"
  86.    endif
  87.  
  88.    ;Make sure the Temp directory is empty
  89.    delspec(TempDir, "*.*")
  90.    profilerd MailRunIni "MailRun" "MailRunDir" MailRunDir
  91.    MRunMain = makefullname(MailRunDir, "MRUN211A")
  92.    execute MRunMain
  93. endproc
  94.  
  95.  
  96. #comment
  97. *********************************************************************
  98. * DELSPEC()
  99. * Called by main()
  100. * Calls makefullname()
  101. * Deletes specified filespec from specified directory.
  102. *********************************************************************
  103. #endcomment
  104.  
  105. proc delspec
  106. strparm dirname, spec
  107. string filename, filespec
  108.    FileSpec = makefullname(dirname, spec)
  109.    findfirst FileSpec
  110.    while FOUND
  111.       FileName = makefullname(dirname, $FILENAME)
  112.       delfile FileName
  113.       findnext
  114.    endwhile
  115. endproc
  116.  
  117.  
  118. #comment
  119. *********************************************************************
  120. * MAKEINI()
  121. * Called by main()
  122. * Calls welcomebox(), getbbstypes()
  123. * Creates the MAILRUN.INI file and sets default values.
  124. *********************************************************************
  125. #endcomment
  126.  
  127. proc makeini
  128. string StateDLPath, StateULPath, AspectDir, temp, MailRunBak
  129. integer dialogstatus
  130. integer StateWaitCnct, StateCallPause, StateMaxDial
  131.    welcomebox()
  132.    ;Check whether user wishes to continue
  133.    while 1
  134.        dialogstatus = $DIALOG
  135.       switch dialogstatus
  136.           case 1
  137.               ;user chose Cancel
  138.               halt
  139.           endcase
  140.           case 10
  141.               ;user chose OK
  142.               exitwhile
  143.           endcase
  144.       endswitch
  145.    endwhile
  146.  
  147.     ;Save the old MAILRUN.INI file if it exists
  148.  
  149.     if isfile MailRunIni
  150.         OldIni = makefullname(TempDir, "oldini.tmp")
  151.         copyfile MailRunIni OldIni
  152.         MailRunBak = makefullname($WINPATH, "MAILRUN.BAK")
  153.         if isfile MailRunBak
  154.             delfile MailRunBak
  155.         endif
  156.         rename MailRunIni MailRunBak
  157.     endif        
  158.  
  159.    ;Create the file MAILRUN.INI
  160.  
  161.    fopen IniFile MailRunIni CREATE TEXT
  162.    if FAILURE
  163.       errormsg "Unable to create MAILRUN.INI;`r`nscript aborted...."
  164.       halt
  165.    endif 
  166.    fputs IniFile "[MailRun]"
  167.    fputs IniFile "Version=2.11"
  168.    fputs IniFile "MailRun="
  169.    fputs IniFile "MailRunDir="
  170.    fputs IniFile "MailDir="
  171.    fputs IniFile "ReplyDir="
  172.    fputs IniFile "DownloadDir="
  173.    fputs IniFile "UploadDir="
  174.    fputs IniFile "DialAttempts="
  175.    fputs IniFile "DialTimeout="
  176.    fputs IniFile "DialPause="
  177.    fputs IniFile "IdleTimeout="
  178.    fputs IniFile "SavePackets="
  179.    fputs IniFile "LogRun="
  180.    fputs IniFile "AppendLog="
  181.    fputs IniFile "AnsiInLog="
  182.    fputs IniFile "NewfileFilter="
  183.    fputs IniFile "Archiver="
  184.    fputs IniFile "QWKReader="
  185.    fputs IniFile "LogViewer="
  186.    fputs IniFile "DLSortField=0"
  187.    fputs IniFile "ULSortField=0"
  188.    fputs IniFile "DLPurgeLimit=0"
  189.    fputs IniFile "ExecTime=HH:MM:SS"
  190.    fputs IniFile "AutoRun=0"
  191.    fputs IniFile "GoWait=1"
  192.    fputs IniFile "PostRun=1"
  193.    fputs IniFile "RingInterrupt=1"
  194.    fputs IniFile ""
  195.    fputs IniFile "[BBSTypes]"
  196.    fputs IniFile "BBSType_1=PCBoard 14.5"
  197.    fputs IniFile "BBSType_2=PCBoard 15.0"
  198.    fputs IniFile "BBSType_3=WildCat! 3.6"
  199.    fputs IniFile "BBSType_4=Auntie"
  200.    fputs IniFile "BBSType_5=RBBS"
  201.    fputs IniFile ""
  202.    fputs IniFile "[MailDoors]"
  203.    fputs IniFile "MailDoor_1=QMail"
  204.    fputs IniFile "MailDoor_2=MarkMail"
  205.    fputs IniFile "MailDoor_3=Cam-Mail"
  206.    fputs IniFile "MailDoor_4=RoseMail"
  207.    fputs IniFile "MailDoor_5=TomCat"
  208.    fputs IniFile "MailDoor_6=Auntie Mail"
  209.    fputs IniFile "MailDoor_7=KingMail"
  210.    fputs IniFile "MailDoor_8=Mail Manager"
  211.    fputs IniFile ""
  212.    fputs IniFile "[DEFAULT]"
  213.    fputs IniFile "BBSName="
  214.    fputs IniFile "BBSType=PCBoard 14.5"
  215.    fputs IniFile "MailDoorType=KingMail"
  216.    fputs IniFile "Number_1="
  217.    fputs IniFile "Number_2="
  218.    fputs IniFile "Number_3="
  219.    fputs IniFile "UserName="
  220.    fputs IniFile "PWord="
  221.    fputs IniFile "UserResp1="
  222.    fputs IniFile "UserResp2="
  223.    fputs IniFile "XferProt=ZModem"
  224.    fputs IniFile "MailXferProt=ZModem"
  225.    fputs IniFile "QWKArchiver=pkunzip.exe"
  226.    fputs IniFile "LangNumber="
  227.    fputs IniFile "GraphicsOn=1"
  228.    fputs IniFile "LangPrompt=Language"
  229.    fputs IniFile "GraphicsPrompt=graphics (Enter)"
  230.    fputs IniFile "NamePrompt=first name"
  231.    fputs IniFile "PWordPrompt=Password"
  232.    fputs IniFile "UserPrompt1="
  233.    fputs IniFile "UserPrompt2="
  234.    fputs IniFile "ScanPrompt=Last Read"
  235.    fputs IniFile "ViewPrompt=View"
  236.    fputs IniFile "MorePrompt=More?"
  237.    fputs IniFile "FilePrompt="
  238.    fputs IniFile "ContinuePrompt=Continue"
  239.    fputs IniFile "CommandPrompt=Command?"
  240.    fputs IniFile "DLPrompt=Aborts Transfer"
  241.    fputs IniFile "DLUnavPrompt=(Enter)=none"
  242.    fputs IniFile "ULPrompt=Aborts Transfer"
  243.    fputs IniFile "ULDescPrompt=? ("
  244.    fputs IniFile "MsgMenuPrompt="
  245.    fputs IniFile "MailDoor=KM"
  246.    fputs IniFile "MailPrompt=KingMail Command"
  247.    fputs IniFile "ReceiveQWKPrompt=When Done"
  248.    fputs IniFile "MailDLPrompt=Aborts Transfer"
  249.    f